'use strict';
module.exports = {
	/**
	 * 查询用户账本Z关联关系
	 * @url client/accountbook/kh/enqrUserRelationBook 前端调用的url参数地址
	 * data 请求参数
	 * @params {String} accountBookName  账本名称
	 * @params {String} accountType  账本类型
	 * @params {String} remarks  账本说明
	 */
	main: async (event) => {
		let {
			data = {}, userInfo, util, originalParam
		} = event;
		let {
			customUtil,
			config,
			pubFun,
			vk,
			db,
			_
		} = util;
		let {
			uid,
			addAccountBook
		} = data && data;
		let res = {
			code: 0,
			msg: '查询成功'
		};
		// 业务逻辑开始-----------------------------------------------------------
		let {
			pagination
		} = data
		if (data.bookId == null || data.bookId == undefined || data.bookId == "") {
			return {
				code: 1001,
				msg: '参数错误'
			};
		}
		const rtnData = await vk.baseDao.selects({
			dbName: "db-user-relation-book", // 主表名
			getCount: false, // 是否需要同时查询满足条件的记录总数量，默认false
			getMain: false, // 是否只返回rows数据，默认false
			pageIndex: pagination.pageIndex, // 查询第几页
			pageSize: pagination.pageSize, // 每页多少条数据
			// 主表where条件
			whereJson: {
				bookId: _.eq(data.bookId)
			},
			// 主表字段显示规则
			fieldJson: {
				token: false,
				password: false,
			},
			// 主表排序规则
			sortArr: [{
				"name": "createTime",
				"type": "asc"
			}],
			// 副表列表
			foreignDB: [{
				dbName: "uni-id-users", // 副表名
				localKey: "uid", // 主表外键字段名
				foreignKey: "_id", // 副表外键字段名
				as: "userList",
				limit: 10, // 当limit = 1时，以对象形式返回，否则以数组形式返回
				// 副表where条件
				whereJson: {},
				// 副表字段显示规则
				fieldJson: {
					token: false,
					password: false,
					wx_openid: false,
					register_env:false,
					dcloud_appid:false,
				},
				// 副表排序规则
				sortArr: [{
					"name": "createTime",
					"type": "asc"
				}],
			}]
		});

		if (rtnData && rtnData.code == 0 && rtnData.rows && rtnData.rows.length > 0) {
			let respData = [];
			let count = 0;
			for (const item of rtnData.rows) {
				if (item.userList && item.userList.length > 0) {
					respData[count] = item.userList[0]
					count++;
				}
			}
			rtnData.data = respData;
			res.data = rtnData;
		} else {
			res.data = null;
		}

		// 业务逻辑结束-----------------------------------------------------------
		return res;
	}
}